#ifndef SOCIALKNOWLEDGE_H
#define SOCIALKNOWLEDGE_H
#include <QString>
#include "position.h"
#include "knowledges.h"


namespace IAlib
{
    class SocialKnowledge : public Knowledges
    {
    public:

      /*  enum socialKnowladgeType
        {
            SK_TYPE_PHONE_NUMBER,
            SK_TYPE_FAX_NUMBER,
            SK_TYPE_POSITION,
            SK_TYPE_STATE,
            SK_TYPE_FUNCTION,
        };*/

        SocialKnowledge();
        SocialKnowledge(const SocialKnowledge& knowledge);

        void setActorID(const QString& id) { m_actor_id = id; }
        QString getActorID() const {return m_actor_id;}

        void setData(const QString& data) { m_data = data; }
        QString getData() const {return m_data;}

        void setActorRole(const QString& role) { m_actor_role = role; }
        QString getActorRole() const { return m_actor_role; }

        void setActorState(const unsigned char state) { m_actor_state = state; }
        unsigned char getActorState() const { return m_actor_state; }


        void setActorPosition(const Position& position) { m_actor_position = position; }
        void setActorPosition(const float x, const float y, const float z, const QString& work_space_id);
        Position getActorPosition() const { return m_actor_position; }

        virtual QByteArray toByteArray() const;
        virtual void fromByteArray(QByteArray &byte_array);

    private:

        QString         m_actor_id;
        QString         m_actor_role;
        unsigned char   m_actor_state;
        Position        m_actor_position;
        QString         m_data;

        //socialKnowladgeType m_type;

    };
}

#endif // SOCIALKNOWLEDGE_H
